//layui.define定义模板
layui.define(["GD_layer"], function (exports) {
    //提示：模块也可以依赖其它模块，如：layui.define('layer', callback);
    // 原型上 定义
    var common = {

        //检测输入值 是否 正确
        check_err: function (obj, check) {
            var _this = this;
            return function (obj) {
                for (var x in obj) {
                    if (!!obj[x]) {
                        throw new Error("func 参数 有误");
                    }
                }
                return _this;
            }
        },
        /*
        *check === obj
        *check.name 对象属性名
        *check.value 对象value
        *Object.keys() 不兼容ie8
        */
        check_single: function (check) {
            if (check.value === null) {
                var check_msg = "没有" + check.name + "值";
                throw new Error(check.name)
            }
        },
        /*
        * type 请求类型 默认 get
        * url  请求链接
        * suc  成功回调
        * err  失败回调
        * show_loading 是否显示 loading
        * */
        ajax: function (obj) {
            var log = console.log;
            var layer = layui.GD_layer;
            var load = null;

            obj.url = obj.url || null;
            obj.type = obj.type || "get";//初始值为get
            obj.suc = obj.suc || function () { log("成功但是没有回调") };
            obj.err = obj.err || function (e) { log("错误:  ", e) }
            obj.show_loading = obj.show_loading || true

            this.check_single(obj.url);

            obj.show_loading ? load = layui.layer.load({ type: 0 }) : "";

            return $.ajax({
                url: obj.url,
                type: obj.type,
                success: function (e) {
                    obj.show_loading ? layui.layer.close(load) : ""
                    obj.suc(e);
                },
                error: function (e) {
                    obj.show_loading ? layui.layer.close(load) : ""
                    obj.err(e);
                },
                done: function () {
                    obj.show_loading ? layui.layer.close(load) : ""
                }
            })
        },

    }

    //输出test接口
    exports('GD_common', common);//第一个为输出模块的名字，第二个为输出哪个对象

});

